@echo off
setlocal enabledelayedexpansion

echo [信息] 腾讯云对象存储资源浏览器安装脚本

REM 检查Node.js是否安装
where node >nul 2>nul
if %ERRORLEVEL% neq 0 (
  echo [错误] 未找到Node.js，请先安装Node.js
  exit /b 1
)

REM 检查npm是否安装
where npm >nul 2>nul
if %ERRORLEVEL% neq 0 (
  echo [错误] 未找到npm，请先安装npm
  exit /b 1
)

REM 清理现有安装
echo [信息] 清理可能存在的node_modules文件夹...
if exist "node_modules" (
  rd /s /q node_modules
)
if exist "package-lock.json" (
  del /f package-lock.json
)

REM 安装后端依赖
echo [信息] 安装后端依赖...
call npm install
if %ERRORLEVEL% neq 0 (
  echo [错误] 后端依赖安装失败
  exit /b 1
)

REM 特别安装sharp库
echo [信息] 特别安装sharp库...
call npm install sharp --platform=win32
if %ERRORLEVEL% neq 0 (
  echo [警告] sharp库安装可能有问题，尝试替代方法...
  call npm install sharp --unsafe-perm
)

REM 测试sharp是否安装成功
echo [信息] 检查sharp库是否正确安装...
node -e "try { require('sharp'); console.log('sharp已成功安装'); } catch(e) { console.error(e); process.exit(1); }"
if %ERRORLEVEL% neq 0 (
  echo [错误] sharp库安装失败，请尝试手动安装：
  echo [错误] npm install sharp --unsafe-perm
  echo [错误] 如果仍然失败，可能需要安装Visual C++ Build Tools或完整的Visual Studio
) else (
  echo [信息] sharp库安装成功
)

REM 安装前端依赖
echo [信息] 安装前端依赖...
cd frontend
call npm install
if %ERRORLEVEL% neq 0 (
  echo [错误] 前端依赖安装失败
  cd ..
  exit /b 1
)
cd ..

echo [信息] 所有依赖安装完成
echo [信息] 请运行start.bat启动应用

pause 